﻿using System;
using System.Collections.Generic;
using System.Linq;
using INSE6260.OnlineBanking.Infrastructure.Domain;
using INSE6260.OnlineBanking.Model.Clients;

namespace INSE6260.OnlineBanking.Model.Accounts
{
    public class AccountSelectableItem
    {
        public int AccountId { get; set; }
        public string AccountDesc { get; set; }
    }
    public interface IAccountRepository : IRepository<Account>
    {
        List<Account> GetCustomerAccounts(int customerId);

        Client GetClientByAccountId(int accountId);

        List<Account> GetAccountListByClientId(int clientId);

        Account GetAccountById(int accountId);
        Account GetAccounByAccountNumber(string accountNumber);

       List<AccountSelectableItem> GetSourceWithdrawalAccounts(int? clientId);

       List<AccountSelectableItem> GetDestinationWithdrawalAccounts(int? clientId);

        string GetAccountDesc(int accountId);

        List<AccountType> GetNoneExistAccountType(int clientId);
    }
}
